package com.ahua.mallchat.common.service;

import com.ahua.mallchat.common.domain.dto.chat.ChatMessageReq;
import com.ahua.mallchat.common.domain.dto.msg.ChatMessageMarkReq;
import com.ahua.mallchat.common.domain.pojo.Message;
import com.ahua.mallchat.common.domain.vo.ChatMemberStatisticResp;
import com.ahua.mallchat.common.domain.vo.CursorPageBaseResp;
import com.ahua.mallchat.common.domain.vo.ws.ChatMemberResp;
import com.ahua.mallchat.common.domain.vo.ws.ChatMessageResp;

import javax.annotation.Nullable;
import java.util.Collection;
import java.util.List;

/**
 * Description: 消息处理类
 */
public interface ChatService {

    /**
     * 发送消息
     *
     * @param request
     */
    Long sendMsg(ChatMessageReq request, Long uid);

    /**
     * 根据消息获取消息前端展示的物料
     *
     * @param message
     * @param receiveUid 接受消息的uid，可null
     * @return
     */
    ChatMessageResp getMsgResp(Message message, Long receiveUid);

    /**
     * 根据消息获取消息前端展示的物料
     *
     * @param msgId
     * @param receiveUid 接受消息的uid，可null
     * @return
     */
    ChatMessageResp getMsgResp(Long msgId, Long receiveUid);


    ChatMemberStatisticResp getMemberStatistic();

}
